{{^isTypeParameterRef}}
    {{#isPotentiallyBoxedPrimitive}}
        {{TYPES.Client.Json.JsonpDeserializer}}.{{#toLower}}{{boxed.name}}{{/toLower}}Deserializer()
    {{/isPotentiallyBoxedPrimitive}}
    {{^isPotentiallyBoxedPrimitive}}
        {{#isList}}
            {{TYPES.Client.Json.JsonpDeserializer}}.arrayDeserializer({{#listValueType}}{{>Type/deserializer}}{{/listValueType}})
        {{/isList}}
        {{#isMap}}
            {{#mapValueType.targetShape.usesTypedKeys}}
                {{mapValueType}}._TYPED_KEYS_DESERIALIZER
            {{/mapValueType.targetShape.usesTypedKeys}}
            {{^mapValueType.targetShape.usesTypedKeys}}
                {{#mapValueType.isList}}
                    {{#mapValueType.listValueType.targetShape.usesTypedKeys}}
                        {{TYPES.Client.Json.ExternallyTaggedUnion}}.arrayDeserializer({{#mapValueType.listValueType}}{{>Type/deserializer}}{{/mapValueType.listValueType}})
                    {{/mapValueType.listValueType.targetShape.usesTypedKeys}}
                    {{^mapValueType.listValueType.targetShape.usesTypedKeys}}
                        {{TYPES.Client.Json.JsonpDeserializer}}.stringMapDeserializer({{#mapValueType}}{{>Type/deserializer}}{{/mapValueType}})
                    {{/mapValueType.listValueType.targetShape.usesTypedKeys}}
                {{/mapValueType.isList}}
                {{^mapValueType.isList}}
                    {{TYPES.Client.Json.JsonpDeserializer}}.stringMapDeserializer({{#mapValueType}}{{>Type/deserializer}}{{/mapValueType}})
                {{/mapValueType.isList}}
            {{/mapValueType.targetShape.usesTypedKeys}}
        {{/isMap}}
        {{^isListOrMap}}
            {{#isNumber}}
                {{TYPES.Client.Json.JsonpDeserializer}}.numberDeserializer()
            {{/isNumber}}
            {{^isNumber}}
                {{#isString}}
                    {{TYPES.Client.Json.JsonpDeserializer}}.stringDeserializer()
                {{/isString}}
                {{^isString}}
                    {{#hasTypeParams}}
                        {{name}}.create{{name}}Deserializer({{#typeParams}}{{>Type/deserializer}}{{^-last}}, {{/-last}}{{/typeParams}})
                    {{/hasTypeParams}}
                    {{^hasTypeParams}}
                        {{name}}._DESERIALIZER
                    {{/hasTypeParams}}
                {{/isString}}
            {{/isNumber}}
        {{/isListOrMap}}
    {{/isPotentiallyBoxedPrimitive}}
{{/isTypeParameterRef}}
{{#isTypeParameterRef}}
    {{#camelCase}}{{name}}{{/camelCase}}Deserializer
{{/isTypeParameterRef}}